草庐IT

c++ - std::transform 的泛化

全部标签

C++11:std ref 全局变量和非函数局部 thread_local 初始化顺序?

C++11中具有非平凡构造函数的全局变量是在静态初始化阶段在进入main之前构造的。同样,非函数局部thread_local变量是在每个线程的“thread_local初始化阶段”构建的。C++11标准是否规定了这些变量的构造顺序?在这两种情况下,如果有两个变量://globalscopeA::A(){b.f();}//AconstructorusesglobalbAa;Bb;C++11标准是否指定了它们应按什么顺序进行初始化,或者如果使用未初始化的变量应该产生错误?同样适用于非函数本地thread_local://globalscopeA::A(){b.f();}//Aconstru

c++ - 将电影转换为 OpenNI *.oni 视频

KinectOpenNIlibrary使用自定义视频文件格式来存储包含rgb+d信息的视频。这些视频的扩展名为*.oni。我找不到关于ONI视频格式的任何信息或文档。我正在寻找一种将传统rgb视频转换为*.oni视频的方法。深度channel可以留空(即归零)。出于示例目的,我有一个带有音频和视频channel的MPEG-4编码的.mov文件。对于必须如何进行转换没有任何限制,我只需要以某种方式进行转换!即imagemagick、ffmpeg、mencoder都可以,C/C++等中的自定义转换代码也是如此。到目前为止,我能找到的只有oneC++conversionutilityinth

c++ - 在 CUDA 上乘以两个 float 变量

我有一个非常有趣的问题,但我花了3个小时才解决它,但我只是想不通发生了什么以及为什么它不起作用。我试过谷歌它,但没有结果。我正在CUDA上编写程序。我有一段非常简单的代码:__global__voidcalcErrorOutputLayer_kernel(*arguments...*){intidx=blockIdx.x*blockDim.x+threadIdx.x;floatgradient;floatderivation;derivation=pow((2/(pow(euler,neuron_device[startIndex+idx].outputValue)+pow(euler

c++ - 分配两个数组一次调用 cudaMalloc

内存分配是GPU中最耗时的操作之一,因此我想通过使用以下代码调用一次cudaMalloc来分配2个数组:intnumElements=50000;size_tsize=numElements*sizeof(float);//declarations-initializationsfloat*d_M=NULL;err=cudaMalloc((void**)&d_M,2*size);//errorchecking//AllocatethedeviceinputvectorAfloat*d_A=d_M;//AllocatethedeviceinputvectorBfloat*d_B=d_M+

c++ - 比较两组 std::weak_ptr

我正在尝试使用GCC4.7.2比较两组C++11weak_ptr。下面的代码显示了重现错误的最小可能样本:std::set,std::owner_less>>set1;std::set,std::owner_less>>set2;boolresult=(set1==set2);尝试编译以上内容会导致一长串错误,其中第一个实际错误如下:/usr/include/c++/4.7/bits/stl_algobase.h:791:6:error:nomatchfor‘operator==’in‘__first1.std::_Rb_tree_const_iterator::operator*>(

java - 发生整数溢出时无符号整数和有符号整数的行为差异

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。在维基百科上阅读这篇关于IntegerOverflow的文章我不太明白为什么有符号整数的溢出会导致未定义的行为,而无符号整数的溢出会导致回绕。为什么它们的行为会有所不同?另一个问题:一般的编程语言是否有任何防止整数溢出的保护措施?

c++ - 如何正确退出可能正在等待 std::condition_variable 的 std::thread?

我有一个类使用互斥锁和两个条件变量实现线程化生产者/消费者系统以进行同步。当有元素要使用时,生产者向消费者线程发出信号,而消费者在消费完元素时向生产者线程发出信号。线程继续生产和消费,直到析构函数通过设置bool变量请求它们退出。因为任何一个线程都可能在等待条件变量,所以我必须对quit变量进行第二次检查,这感觉不对而且很乱......我已将问题简化为以下(使用g++4.7在GNU/Linux上工作)示例://C++11andBoostrequired.#include//std::rand()#include#include#include#include#include#inclu

C++ 单元测试和 stub 第 3 方 C 库

我需要对我编写的一些使用第3方C库的C++对象进行单元测试。由于超出该问题范围的原因,我无法直接调用第3方C库,需要将其stub以用于测试套件。对于单元测试套件的其他部分,我们使用googlemock,但我认为它不能用于C库。我可以手动stub库,但不想这样做(部分原因是懒惰(它相当大),但主要是因为它只是一个原则问题)。所以这是我的问题:是否有一种工具可以根据C库头文件生成stub代码?一旦我有了被删除的代码,我将对其进行一些小的修改,然后我将针对它进行链接以进行单元测试。 最佳答案 stubgen可以从头文件生成stub成员,除

c++ - 使用 OpenCV 和 Qt 显示图像的奇怪行为

我正在使用OpenCVCAPI从Cam捕获图像并使用TCP套接字发送它们。服务器正在运行C++(QT)并接收帧。进程运行良好,我可以在服务器上看到图像。奇怪的问题是当我关闭两个程序并重新运行客户端和服务器时,我可以再次看到我在之前测试中看到的前一帧。如果我再次关闭这两个程序并重新运行它们,我可以看到一个新的框架而不是第二个框架,并且该过程继续。为了更清楚:capture1,close,cap1,close,cap3,close,cap3,close,cap5......etc我以前没见过这样的东西! 最佳答案 我之前遇到过同样的问题

c++ - GCC- 无效使用 Register

我正在VS2012和GCC(CodeBlocks)下为Windows编译一个项目。在VS2012上一切正常。在GCC下,我得到以下编译错误:C:\Users\Piotrek\AppData\Local\Temp\ccfdl0Ye.s|164|Error:invaliduseofregister|C:\Users\Piotrek\AppData\Local\Temp\ccfdl0Ye.s|166|Error:invaliduseofregister|C:\Users\Piotrek\AppData\Local\Temp\ccfdl0Ye.s|221|Error:invaliduseofr